{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "567af7e2-fba6-4bf7-9768-35e5816ce29a",
   "metadata": {},
   "source": [
    "Chapter 12\n",
    "# 用NumPy数组 (邻接矩阵) 创建图，无权\n",
    "Book_6《数据有道》 | 鸢尾花书：从加减乘除到机器学习"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "dd09afe8-e59d-43c4-b265-8f6e464206ae",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import networkx as nx\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "9a56397b-df15-4094-94a3-752768d99450",
   "metadata": {},
   "outputs": [],
   "source": [
    "matrix_G = np.array([[0, 1, 1, 0], \n",
    "                     [1, 0, 1, 1], \n",
    "                     [1, 1, 0, 1], \n",
    "                     [0, 1, 1, 0]])\n",
    "# 定义无向图邻接矩阵"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "64fb108f-c827-427e-a805-a5ce50973960",
   "metadata": {},
   "outputs": [],
   "source": [
    "G = nx.from_numpy_array(matrix_G, \n",
    "                        create_using=nx.Graph)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "f4021bff-fcb4-4b60-bc60-aa87b349c76f",
   "metadata": {},
   "outputs": [],
   "source": [
    "G.nodes()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "d1acd75a-460a-429b-9538-464cd2ee3d77",
   "metadata": {},
   "outputs": [],
   "source": [
    "G.edges()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "622151a3-ae13-4bf7-b542-59357447cf9a",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 修改节点标签\n",
    "mapping = {0: \"a\", 1: \"b\", 2: \"c\", 3: \"d\"}\n",
    "G = nx.relabel_nodes(G, mapping)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "1f64c726-f0bc-41cf-ba84-fac20c31f59a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "NodeView(('a', 'b', 'c', 'd'))"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "G.nodes()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "cdd26c54-4d4f-433a-8f4d-c6131c9962bf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "EdgeView([('a', 'b'), ('a', 'c'), ('b', 'c'), ('b', 'd'), ('c', 'd')])"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "G.edges()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "92e09464-b47c-4b27-9c1f-2f7934956bff",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 600x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 可视化\n",
    "plt.figure(figsize = (6,6))\n",
    "pos = nx.spring_layout(G, seed = 8)\n",
    "nx.draw_networkx(G, \n",
    "                 pos = pos,\n",
    "                 node_color = '#0058FF',\n",
    "                 with_labels = True,\n",
    "                 node_size = 188)\n",
    "plt.savefig('无向图.svg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "d364b180-65de-4b00-bd3d-35afc9e3f4c7",
   "metadata": {},
   "outputs": [],
   "source": [
    "matrix_Di_G = np.array([[0, 0, 1, 0],\n",
    "                        [1, 0, 0, 1],\n",
    "                        [0, 1, 0, 0],\n",
    "                        [0, 0, 1, 0]])\n",
    "# 定义有向图邻接矩阵"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "cf8e56b2-05ae-48ea-ab1f-9b3c318bfd88",
   "metadata": {},
   "outputs": [],
   "source": [
    "Di_G = nx.from_numpy_array(matrix_Di_G, \n",
    "                        create_using=nx.DiGraph)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "3b3a7805-0059-447f-8fdd-cd1648f3524b",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 修改节点标签\n",
    "Di_G = nx.relabel_nodes(Di_G, mapping)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "c1d7fa46-d590-4897-816e-3a212ca95297",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 600x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 可视化\n",
    "plt.figure(figsize = (6,6))\n",
    "nx.draw_networkx(Di_G, \n",
    "                 pos = pos,\n",
    "                 node_color = '#0058FF',\n",
    "                 with_labels = True,\n",
    "                 node_size = 188)\n",
    "plt.savefig('有向图.svg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "70be59cf-29c2-452b-a7d1-72a947ce2ef0",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e3ff656d-b6fb-4be8-818a-5e1076260af4",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
